package ar.com.tallerdos.smartdinner.business;

import java.util.List;

import ar.com.tallerdos.smartdinner.dao.ComidaDao;
import ar.com.tallerdos.smartdinner.model.Comida;
import ar.com.tallerdos.smartdinner.model.Mesa;
import ar.com.tallerdos.smartdinner.model.Mesa.MesaEstado;
import ar.com.tallerdos.smartdinner.model.Pedido;

public class ComidaBusiness {

    private static ComidaDao dao;
    
    public static Comida findById(Integer id) {
        return getDao().findById(id);
    }
    
    public static List<Comida> findAll() {
        return getDao().findAll();
    }
    
    public static void create(Comida entity) {
        getDao().create(entity);
    }
    
    public static Boolean delete(Comida entity) {
        return delete(entity.getId());
    }
    
    public static Boolean delete(Integer id) {
	Comida comida = findById(id);
	for (Pedido p : comida.getPedidos()) {
 	    PedidoBusiness.delete(p);
	}
	for (Mesa mesa : comida.getMesas()) {
	    mesa.setEstado(MesaEstado.abierta);
	    MesaBusiness.update(mesa);
	}
        return getDao().delete(id);
    }
    
    public static Boolean update(Comida entity) {
	return getDao().update(entity);
    }
    
    public static Boolean createOrUpdate(Comida entity) {
	return getDao().createOrUpdate(entity);
    }
    
    public static ComidaDao getDao() {
        if (dao == null) {
            dao = new ComidaDao();
        }
        return dao;
    }
    
    public static void setDao(ComidaDao dao) {
	ComidaBusiness.dao = dao;
    }
    
    
}
